c7b322aba675374a1687b58dbec611af1e9daa94,h2o-algos/src/main/java/hex/glm/GLMModel.java,GLMModel,score0,#Chunk[]#number#number[]#number[]#,82

Before Change


    double eta = 0.0;
    final double [] b = beta();
    if(!_parms._use_all_factor_levels){ // good level 0 of all factors
      for(int i = 0; i < _dinfo._catOffsets.length-1; ++i) if(chks[i].atd(row_in_chunk) != 0)
        eta += b[_dinfo._catOffsets[i] + (int)(chks[i].atd(row_in_chunk))-1];
    } else { // do not skip any levels
      for(int i = 0; i < _dinfo._catOffsets.length-1; ++i)

After Change


    double eta = 0.0;
    final double [] b = beta();
    for(int i = 0; i < _dinfo._catOffsets.length-1; ++i) {
      if(chks[i].isNA(row_in_chunk)) {
        eta = Double.NaN;
        break;
      }
      long lval = chks[i].at8(row_in_chunk);
      int ival = (int)lval;
      if(ival != lval) throw new IllegalArgumentException("categorical value out of range");
      if(_parms._use_all_factor_levels)
        eta += b[_dinfo._catOffsets[i] + ival];